home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / latex / base / latexbug.tex < prev    next >
Text File  |  1994-12-17  |  20KB  |  742 lines

  1. % \iffalse meta-comment
  2. %
  3. % Copyright 1994 the LaTeX3 project and the individual authors.
  4. % All rights reserved. For further copyright information see the file
  5. % legal.txt, and any other copyright indicated in this file.
  6. % This file is part of the LaTeX2e system.
  7. % ----------------------------------------
  8. %  This system is distributed in the hope that it will be useful,
  9. %  but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. %  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  11. % IMPORTANT NOTICE:
  12. % For error reports in case of UNCHANGED versions see bugs.txt.
  13. % Please do not request updates from us directly.  Distribution is
  14. % done through Mail-Servers and TeX organizations.
  15. % You are not allowed to change this file.
  16. % You are allowed to distribute this file under the condition that
  17. % it is distributed together with all files mentioned in manifest.txt.
  18. % If you receive only some of these files from someone, complain!
  19. % You are NOT ALLOWED to distribute this file alone.  You are NOT
  20. % ALLOWED to take money for the distribution or use of either this
  21. % file or a changed version, except for a nominal charge for copying
  22. % etc.
  23. % \fi
  24. %%% ====================================================================
  25. %%%  @LaTeX-file{
  26. %%%     author          = "David Carlisle",
  27. %%%     version         = "1.18",
  28. %%%     date            = "05 December 1994",
  29. %%%     filename        = "latexbug.tex",
  30. %%%     email           = "latex-bugs@uni-mainz.de",
  31. %%%     codetable       = "ISO/ASCII",
  32. %%%     keywords        = "LaTeX, bugs, reporting",
  33. %%%     supported       = "yes",
  34. %%%     docstring       = "
  35. %%%
  36. %%%     LaTeX bug report generator.
  37. %%%     %%%%%%%%%%%%%%%%%%%%%%%%%%
  38. %%%
  39. %%%     Processing this file with LaTeX should produce
  40. %%%     a file latexbug.msg in the current directory.
  41. %%%
  42. %%%     latexbug.msg may be used as a template for submitting bug
  43. %%%     reports concerning files in the standard LaTeX distribution.
  44. %%%
  45. %%%     Any bug report should include a small LaTeX test file
  46. %%%     that shows the bug, and the log that LaTeX produces on the
  47. %%%     test file.
  48. %%%
  49. %%%     Please check before submitting a bug report that your format
  50. %%%     is not more than one year old. New LaTeX releases occur at
  51. %%%     6 monthly intervals, and so your bug may be fixed in a later
  52. %%%     release.
  53. %%%
  54. %%%     Completed bug report forms should be submitted to:
  55. %%%     latex-bugs@uni-mainz.de
  56. %%%
  57. %%%     Please:
  58. %%%     use the synopsis text as the `Subject' line of the message.
  59. %%%     ===========================================================
  60. %%%
  61. %%%     For example:
  62. %%%     Subject: \verb does not work inside \caption
  63. %%%
  64. %%%     So that your message has an identifying subject. 
  65. %%%     Do not use subject lines such as `LaTeX bug' as this does not
  66. %%%     help us to identify your message.
  67. %%%
  68. %%%
  69. %%%     Configuring latexbug
  70. %%%     ====================
  71. %%%     If you often test early release of LaTeX packages, and feel that
  72. %%%     you may need to use this program often, you may create a file
  73. %%%     latexbug.cfg
  74. %%%     This should contains the answers of certain standard questions.
  75. %%%     (Such as your name and email address.)
  76. %%%
  77. %%%     Currently the responses that may be stored in latexbug.cfg are:
  78. %%%     name address organisation and interactive.
  79. %%%     (If organisation is not set in the .cfg file latexbug does not
  80. %%%     prompt for it, as this is not vital information.)
  81. %%%
  82. %%%     For example, my personal latexbug.cfg looks like
  83. %%%     
  84. %%%     \def\name{David Carlisle}
  85. %%%     \def\address{carlisle@cs.man.ac.uk}
  86. %%%     \def\organisation{Manchester University}
  87. %%%     \def\interactive{y}
  88. %%%     
  89. %%%     A site latexbug.cfg might just set the \organisation, leaving
  90. %%%     the personal details to be filled in interactively by the user.
  91. %%%     
  92. %%%  }
  93. %%% ====================================================================
  94.  
  95. \ifcat{=
  96.  
  97. \catcode`\{=1 \let\bgroup{
  98. \catcode`\}=2 \let\egroup}
  99. \catcode`\#=6 
  100. \catcode`\^=7
  101. \catcode`\@=11
  102.  
  103. \newlinechar`\^^J
  104. \def\m@ne{-1 }
  105. \countdef\count@255
  106.  
  107. \def\fmtname{INITEX}
  108. \def\fmtversion{9999/00/00}
  109. \def\@secondoftwo#1#2{#2}
  110. \def\@empty{}
  111. \everyjob{\typeout{INITEX}}
  112. \def\space{ }
  113. \def\@spaces{\space\space\space\space}
  114. \let\@@end\end
  115. \let\loop\relax
  116. \expandafter\let\csname repeat\expandafter\endcsname
  117.                 \csname fi\endcsname
  118.  
  119. \chardef\msg15
  120. \immediate\openout\msg=\jobname.msg
  121.  
  122. \expandafter\edef\csname newif\endcsname#1#2{%
  123.   \let\noexpand\ifinteractive
  124.     \expandafter\noexpand\csname iffalse\endcsname}
  125.  
  126. \def\newcount#1{}
  127.  
  128. \def\dospecials{\catcode`\\=12 }
  129.  
  130. \def\typeout{\immediate\write17}
  131.  
  132. \def\two@digits#1{\ifnum#1<10 0\fi\number#1}
  133.  
  134. \def\wmsg#1#{\bgroup\@wmsg}
  135.  
  136. \def\@ifundefined#1#2#3%
  137.   {\expandafter\ifx\csname#1\endcsname\relax#2\else#3\fi}
  138. \else
  139. %%
  140. %% @ is a letter
  141. %%
  142. \catcode`\@=11
  143.  
  144. %%
  145. %% Output stream to produce the bug report template.
  146. %%
  147. \newwrite\msg
  148. \immediate\openout\msg=\jobname.msg
  149.  
  150.  
  151. %%
  152. %% Check that LaTeX2e is being used.
  153. %%
  154. \ifx\undefined\newcommand
  155.  \newlinechar`\^^J%
  156.  \immediate\write17{^^J%
  157.     You must use LaTeX2e to generate the bug report!^^J^^J%
  158.     If there is a bug in the installation procedure,^^J%
  159.     and you can not create LaTeX2e, you may use initex^^J%
  160.     to generate the report}%
  161.  
  162.  \let\relax\end
  163. \else
  164. \def\@tempa{LaTeX2e}\ifx\@tempa\fmtname\else
  165.  \immediate\write17{^^J%
  166.   Older Versions of LaTeX are no longer supported.^^J%
  167.   You must use LaTeX2e to generate the bug report!^^J^^J%
  168.   If there is a bug in the installation procedure,^^J%
  169.   and you can not create LaTeX2e, you may use initex^^J%
  170.   to generate the report}%
  171.  \let\relax\@@end
  172. \fi\fi
  173.  
  174. %%
  175. %% \wmsg writes to the terminal, and the .msg file
  176. %% \wmsg* just writes to the .msg file
  177. %% \typeout just writes to the terminal
  178. %%
  179.  
  180. \def\wmsg{\bgroup\@ifstar{\interactivefalse\@wmsg}\@wmsg}
  181.  
  182. \fi
  183.  
  184. \relax
  185. \endlinechar=-1
  186.  
  187. \def\@wmsg#1{%
  188.   \ifinteractive\immediate\write17{#1}\fi
  189.   \immediate\write\msg{#1}%
  190.   \egroup}
  191.  
  192. %%
  193. %% if \interactivefalse just make a blank template.
  194. %%
  195. \newif\ifinteractive
  196. \interactivetrue
  197.  
  198. %%
  199. %% Prompt for an answer from the user, if the answer is not
  200. %% provided by the cfg file.
  201. %%
  202.  
  203. \def\readifnotknown#1{%
  204.  \@ifundefined{#1}%
  205.     {{\message{#1> }%
  206.      \catcode`\^^I=12 \let\do\@makeother\dospecials
  207.      \global\read\m@ne t\expandafter o\csname#1\endcsname}}%
  208.     {\message{\csname#1\endcsname}}}
  209.  
  210. %%
  211. %% Pause so messages do not scroll off screen.
  212. %%
  213. \def\pause{%
  214.   \ifinteractive
  215.     \message{Press <return> key to continue. }%
  216.     \read\m@ne to \@tempa
  217.   \fi}
  218.  
  219. %%
  220. %% Opening Banner.
  221. %%
  222. \typeout{^^J%
  223. ============================================================^^J%
  224. ^^J%
  225. LaTeX bug report generator^^J%
  226. ==========================^^J%
  227. Processing this file with LaTeX will produce a template \jobname.msg^^J%
  228. for submitting bug reports for the LaTeX distribution.^^J%
  229. Please do not report bugs in other, non-standard, files to the^^J%
  230. latex-bugs address.^^J}
  231.  
  232.  
  233. \ifinteractive
  234.   \InputIfFileExists{latexbug.cfg}{\typeout{** latexbug.cfg used **}}{}
  235. \fi
  236.  
  237. %% \batch is a `private' macro used to get a batchmode
  238. %% (actually \nonstopmode) run for use with latexbug.el
  239. \ifx\batch\undefined
  240.  
  241. \count@=0
  242. \ifinteractive
  243.  
  244. \typeout{%
  245. Several categories of files are supported,^^J%
  246. corresponding to directories in the standard LaTeX distribution:^^J^^J
  247. 0) LaTeX:\@spaces
  248.          The `base' format, and standard  classes such as `article'.^^J
  249. 1) tools:\@spaces
  250.          Packages supported by the LaTeX3 project team.^^J
  251. 2) graphics:\space 
  252.          The color and graphics packages.^^J
  253. 3) mfnfss: \space\space
  254.          Packages for using MetaFont fonts with NFSS (ie LaTeX2e).^^J
  255. 4) psnfss: \space\space
  256.          Packages for using PostScript fonts with NFSS (ie LaTeX2e).^^J
  257. 5) amslatex:\space
  258.          Classes and Packages supported by the AMS.^^J
  259. 6) babel:\@spaces
  260.          Packages supporting many different languages.^^J%
  261. }
  262. \message{Please select a category 0--6:  }
  263. \read\m@ne to \answer
  264. \count@=\answer\relax
  265. \else
  266. \typeout{As you are using INITEX, I will assume category `latex'}
  267. \fi
  268.  
  269. \ifcase\count@
  270. \def\category{latex}\or
  271. \def\category{tools}\or
  272. \def\category{graphics}\or
  273. \def\category{mfnfss}\or
  274. \def\category{psnfss}\or
  275. \def\category{amslatex}\or
  276.  
  277. \def\category{babel}\else
  278. \errhelp{Quit with `x' and then re-start latexbug}
  279. \def\badcategory{Only categories 0,...,6 are supported at this time}
  280. \errmessage{\badcategory}
  281. \fi
  282.  
  283.  
  284. \typeout{^^J%
  285. ============================================================^^J%
  286. ^^J%
  287. Please give a one line ( < 50 character ) description of the problem.%
  288. ^^J^^J%
  289. If you are using email to report the problem,^^J%
  290. please also use this text as the `Subject' line for the mail message:%
  291. ^^J \@spaces\@spaces\space
  292.                  |<------------------------------------------------>|} 
  293.  
  294.  
  295. \loop
  296. \let\synopsis\relax
  297. \readifnotknown{synopsis}
  298. \ifx\synopsis\@empty
  299. \repeat
  300.  
  301.  
  302. \typeout{%
  303. ^^J%
  304. \ifinteractive
  305. This report generator may be used in one of two ways.^^J%
  306. If you choose the interactive option, you will be prompted to answer^^J%
  307. several questions. Otherwise a blank template will be created for^^J%
  308. you to fill
  309.  in using your editor.^^J%
  310. \else
  311. INITEX should only be used for reporting bugs with the LaTeX2e^^J%
  312. installation procedure. If you have a working copy of LaTeX2e,^^J%
  313. please use that to generate the report.
  314. \fi}
  315.  
  316. \ifinteractive
  317. \typeout{Interactive session (y/n) ? }
  318. \readifnotknown{interactive}
  319.  
  320. \ifx\interactive\@empty
  321.    \def\interactive{n}
  322. \fi
  323.  
  324. %%
  325. %% Allow anything begining with `y' or `Y' for yes.
  326. %%
  327. \edef\interactive{\uccode`\expandafter\@car\interactive\@nil}
  328. \ifnum \interactive=`Y \else\interactivefalse\fi
  329. \else
  330. \def\interactive{`\N}
  331. \fi
  332.  
  333. \else
  334. \def\category{< CATEGORY >}
  335. \def\synopsis{< SYNOPSIS >}
  336. \batchmode
  337. \interactivefalse
  338. \def\interactive{`\N}
  339. \fi
  340.  
  341. %%
  342. %% Header in the msg file.
  343. %%
  344. \wmsg*{^^J%
  345.  LaTeX2e bug report.^^J%
  346. \ifnum \interactive=`Y Generated \else Template generated \fi
  347.  by latexbug.tex on \number\year/\two@digits\month/\two@digits\day^^J%
  348. ^^J%
  349.  Reports may be submitted by email to latex-bugs@uni-mainz.de^^J%
  350.  Please use the subject line:^^J%
  351.  Subject: \synopsis^^J%
  352.  ============================================================^^J}
  353.  
  354.  
  355.  
  356. %%
  357. %% Category of bug, obtained earlier but put out now, after the header.
  358. %%
  359. \wmsg{>Category: \category}
  360.  
  361. %%
  362. %% synopsis of bug, obtained earlier but put out now, after the header.
  363. %%
  364. \wmsg{>Synopsis: \synopsis}
  365.  
  366.  
  367. %%
  368. %% >Confidential: Default to no unless this is overridden
  369. %% in latexbug.cfg. If you want to send a one-off confidential
  370. %% report, just edit the latexbug.msg to say yes.
  371. %%
  372. \wmsg{>Confidential: \ifx\confidential\undefined
  373.                          no
  374.                        \else
  375.                          \confidential
  376.                        \fi}
  377.  
  378.  
  379. \begingroup
  380.  \global\let\format\@empty
  381.  \gdef\hyphenation{standard}
  382.  \def\immediate#1#{\xdef\hyphenation}
  383.  \def\typeout#1{\xdef\format{\format#1}}
  384.  \the\everyjob
  385. \endgroup
  386.  
  387. \wmsg{>Release: \format}
  388.  
  389. \ifinteractive
  390. %%
  391. %% if interactive, \wread reads a line (verbatim) and write it to the
  392. %% .msg file, until a blank line is entered.
  393. %%
  394.   \def\wread{{\catcode`\^^I=12 
  395.   \let\do\@makeother\dospecials
  396.   \let\lastanswer\answer
  397.   \message{=> }\read\m@ne to \answer
  398.   \ifx\lastanswer\@empty
  399.     \let\lastanswer\answer
  400.   \fi
  401.   \ifx\lastanswer\@empty
  402.   \else
  403.     \immediate\write\msg{\answer}
  404.     \expandafter\wread
  405.   \fi}}
  406. \else
  407. %%
  408. %% If non-interactive, \wread just writes a blank line to the .msg file,
  409. %% and \wmsg does not write to the terminal.
  410. %%
  411.   \def\wread{\wmsg{}}
  412. \fi
  413.  
  414. %%
  415. %% \copytomsg copies the contents of a file into the .msg file.
  416. %% (at least it does it as well as TeX can, so there may be
  417. %% transcription problems with 8-bit characters).
  418. %%
  419. %% It does a line count, and complains if the test file is
  420. %% too large.
  421.  
  422. \chardef\inputfile=15
  423.  
  424. \newcount\linecount
  425.  
  426. \def\copytomsg#1{{%
  427.    \def\do##1{\catcode`##1=11}%
  428.    \dospecials
  429.    \global\linecount\z@
  430.    \openin\inputfile#1\relax
  431.    \def\thefile{#1}%
  432.    \@copytomsg
  433.    \closein\inputfile}}
  434.  
  435. \def\@copytomsg{%
  436.    \ifeof\inputfile
  437.       \typeout{*** \thefile\space line count = \the\linecount}
  438.    \else
  439.       \global\advance\linecount\@ne
  440.       \read\inputfile to \inputline
  441.       \ifx\inputline\@empty
  442.          \wmsg*{}
  443.       \else
  444.          \wmsg*{\inputline}
  445.       \fi
  446.       \expandafter\@copytomsg
  447.    \fi}
  448.  
  449.  
  450. %%
  451. %% Test the age of the current format.
  452. %%
  453. \def\getage#1/#2/#3\@nil{%
  454.   \count@\year
  455.   \advance\count@-#1\relax
  456.   \multiply\count@ by 12\relax
  457.   \advance\count@\month
  458.   \advance\count@-#2\relax}
  459. %
  460. \expandafter\getage\fmtversion\@nil
  461. %%
  462. %% \count@ should now be the age of the format in months.
  463. %%
  464. \ifnum\count@>12
  465. \def\oldformat{^^J%
  466.    ! Your LaTeX installation is more than one year old.^^J%
  467.    ! Please consider updating LaTeX before submitting this report.^^J%
  468.    ! At least check a current latex.bug file, to see if the bug^^J%
  469.    ! has been fixed in the current release.^^J%
  470.    !}
  471. %%
  472. %% Put the message in a macro to improve the look of the error mesage.
  473. %%
  474.  
  475. \errhelp{If you still wish to complete the form, just type return.}
  476. \errmessage{\oldformat}
  477. \fi
  478.  
  479.  
  480. %%
  481. %% Now use \wmsg and \wread for each of the multi-line fields 
  482. %% in the form. Currently one-line fields use \read directly.
  483. %%
  484. \ifinteractive
  485.   \typeout{^^JYour name:}
  486.   \readifnotknown{name}
  487. \else
  488.   \ifx\name\undefined
  489.     \def\name{ < ENTER YOUR NAME > }
  490.   \fi
  491. \fi
  492.  
  493.  
  494. \ifinteractive
  495.   \typeout{^^JYour Address (preferably email):}
  496.   \readifnotknown{address}
  497. \else
  498.   \ifx\address\undefined
  499.     \def\address{ < ENTER YOUR EMAIL ADDRESS > }
  500.   \fi
  501. \fi
  502.  
  503. \wmsg*{>Originator: \address \space(\name)}
  504.  
  505. %%
  506. %% >Organisation: is really a GNATS multiline filed
  507. %% but we treat it as a one-line field.
  508. %%
  509. \wmsg*{>Organization: \ifx\organisation\undefined
  510.                         \ifx\organization\undefined\else
  511.                            \organization
  512.                         \fi
  513.                        \else
  514.                          \organisation
  515.                        \fi}
  516.  
  517.  
  518. %%
  519. %% Test which format is being used. These fields are completed
  520. %% automatically even if the blank template is being produced.
  521. %%
  522.  
  523. \wmsg*{>Environment:}
  524. \wmsg*{ Hyphenation: \hyphenation}
  525. \wmsg*{ TeX Version: \meaning\@TeXversion}
  526. \wmsg*{ Current Directory Syntax: \meaning\@currdir}
  527. \wmsg*{ Input Path: \meaning\input@path}
  528.  
  529.  
  530. \wmsg*{>Description:}
  531. \typeout{}
  532. \wmsg{Description of bug:}
  533. \ifinteractive
  534.   \typeout{%
  535.     \@spaces The answer to this  question may take several lines.^^J%
  536.     \@spaces (Each such line will be prompted by =>.)^^J%
  537.     \@spaces Typing TWO consecutive blank lines terminates the answer.}
  538. \else
  539. \wmsg{ < ENTER BUG REPORT HERE >}
  540. \fi
  541. \wread
  542.  
  543.  
  544.  
  545. %%
  546. %% insertion of the test file
  547. %%
  548.  
  549.  
  550.  
  551. \ifinteractive
  552.    \typeout{^^J%
  553.  Name of a SHORT, SELF-CONTAINED file which indicates the problem:^^J%
  554.  This file should be as small as possible (preferably < 60 lines)^^J%
  555.  Any non-standard files that the test file uses should be included^^J%
  556.  using the filecontents environment.^^J^^J%
  557. %
  558.  LaTeX will try to input this file, so give the full path^^J%
  559.  if the file is not in the current directory.^^J^^J%
  560. %
  561.  If you are not reporting a bug, and there is therefore^^J%
  562.  no test file, just hit <return>}
  563.    \message{filename> }\read\m@ne to \filename
  564. \else
  565.    \def\filename{}
  566. \fi
  567.  
  568. %% 
  569. %% Try to find the .tex file and .log file
  570. %%
  571.  
  572.  
  573. \ifx\filename\@empty
  574.   \ifx\LaTeX\undefinedcommand
  575.   \else
  576.     \ifinteractive
  577.       \typeout{^^J^^JNo test file.^^J^^J%
  578.       Three classes of report are supported:^^J^^J%
  579.       0) sw-bug:^^J\@spaces
  580.          Bug in the software, the report should include a test file.^^J
  581.       1) doc-bug:^^J\@spaces
  582.          Inaccuracies in the documentation.^^J
  583.       2) change-request:^^J\@spaces 
  584.          Not a bug, but rather a request for LaTeX to be changed.^^J}
  585.       \message{Please select a category 0--2:  }
  586.       \read\m@ne to \answer
  587.       \ifx\answer\@empty
  588.         \def\answer{-1}
  589.       \fi
  590.       \count@=\answer\relax
  591.       \else
  592.         \count@=\z@
  593.       \fi
  594.     \ifcase\count@
  595.       \ifinteractive\wmsg{>Class: sw-bug}\fi
  596.       \typeout{^^J! Please edit the message to add a test file and log!}
  597.       \pause
  598.       \wmsg*{^^J>How-To-Repeat:}
  599.       \wmsg*{%
  600.       Sample file which indicates the problem:^^J%
  601.       ========================================^^J%
  602.       \space< TEST FILE HERE >^^J%
  603.       ^^J%
  604.       The log file from running LaTeX on the sample:^^J%
  605.       ==============================================^^J%
  606.       \space< LOG FROM TEST FILE HERE >}
  607.     \or
  608.       \wmsg{>Class: doc-bug}
  609.     \or
  610.       \wmsg{>Class: change-request}
  611.     \else
  612.       \errhelp{Quit with `x' and then re-start latexbug}
  613.       \def\badcategory{Only classes 0,1,2 are supported at this time}
  614.       \errmessage{\badcategory}
  615.     \fi
  616.   \fi
  617. \else
  618.  
  619. \filename@parse\filename
  620.  
  621. \IfFileExists{\filename}{\edef\samplefile{\filename}}{}
  622.  
  623. \IfFileExists{\filename@area\filename@base.log}
  624.   {\edef\logfile{\filename@area\filename@base.log}}
  625.   {\IfFileExists{\filename@area\filename@base.lis}
  626.     {\edef\logfile{\filename@area\filename@base.lis}}
  627.     {}}
  628.  
  629.  
  630. %% 
  631. %% The example file goes here:
  632. %%
  633. \wmsg*{^^J>How-To-Repeat:}
  634.  
  635. \wmsg*{^^J%
  636. Sample file which indicates the problem:^^J%
  637. ========================================}
  638.  
  639. \ifx\samplefile\undefinedcommand
  640.    \typeout{^^J%
  641.       Sample file \filename\space not found.^^J%
  642.       Please edit \jobname.msg to include the sample file.}
  643.    \wmsg*{ < TEST FILE HERE >}
  644.    \pause
  645. \else
  646.    \copytomsg{\samplefile}
  647.    \ifnum\linecount>60
  648.     \typeout{%
  649. ^^J%
  650. !!! Your test file is \the\linecount\space lines long.^^J%
  651. !!! Such a large test file causes us problems:^^J%
  652. !!! * It makes it difficult to track down the error^^J%
  653. !!! * It makes our database for storing reports unnecessarily large.^^J%
  654. !!! ^^J%
  655. !!! Please, if at all possible, cut down your test file to the^^J%
  656. !!! smallest file that shows the behaviour.^^J}
  657.    \pause
  658.    \fi
  659. \fi
  660.  
  661.  
  662. %%
  663. %% The log file goes here:
  664. %%
  665. \wmsg*{^^J%
  666. The log file from running LaTeX on the sample:^^J%
  667. ==============================================}
  668.  
  669. \ifx\logfile\undefinedcommand
  670.    \typeout{^^J%
  671.       Log file \filename@area\filename@base.log not found.^^J%
  672.       Please edit \jobname.msg to include the log file.}
  673.    \wmsg*{ < < LOG FROM TEST FILE HERE >}
  674.    \pause
  675. \else
  676.    \copytomsg{\logfile}
  677. \fi
  678.  
  679. \fi
  680.  
  681.  
  682. %%
  683. %% Closing Banner.
  684. %%
  685. \typeout{^^J%
  686. ============================================================}
  687.  
  688. \ifinteractive
  689.  \typeout{^^J%
  690.    You may wish to make further changes to the bug report file:^^J%
  691.    `\jobname.msg'^^J%
  692.    using your editor.}
  693. \else
  694.  \typeout{^^J%
  695.    A template for submitting bug reports has been left in the file:^^J%
  696.    \jobname.msg^^J%
  697.    Please use your editor to complete the file before submitting^^J%
  698.    your report.}
  699. \fi
  700.  
  701. \let\ifinteractivetrue\iftrue
  702. \typeout{^^J%
  703.   If you have access to email, please send `\jobname.msg' to:^^J%
  704.   latex-bugs@uni-mainz.de  Please use the subject line:^^J%
  705.   \@spaces Subject: \synopsis^^J%
  706. ^^J%
  707.  (This subject will be used in all subsequent correspondence.)^^J%
  708. ^^J%
  709.   Your message will be entered into a publicly readable database^^J%
  710.   Accessable via the www (see bugs.txt for details).^^J%
  711.   If do not wish this message made public, Edit the^^J%
  712.   >Confidential: no^^J%
  713.   field to  yes  before submitting this message.^^J%
  714. ^^J%
  715.   Thank you for taking the time to submit a bug report.}
  716.  
  717. \wmsg*{^^J%
  718. ============================================================^^J
  719. ^^J%
  720.    End of LaTeX2e bug report.^^J%
  721. ============================================================}
  722.  
  723. %%
  724. %% Close the .msg output stream.
  725. %%
  726. \immediate\closeout\msg
  727.  
  728. %%
  729. %% This is the TeX primitive \end command.
  730. %%
  731. \@@end
  732.